#pragma once
#include "EpilScope.h"


class EpilFunctionScope : public EpilScope
{
public:
	EpilFunctionScope( EpilInterpreter * interpreter, EpilScope * parent, bool hasVariousParameters = false );
	virtual ~EpilFunctionScope();

	virtual EpilScopeType				GetScopeType() const												{ return EST_Function; }

	bool								HasVariousParameters() const										{ return m_hasVariousParameters; }
	const EpilObjectVector &			GetVariousParameters() const										{ return m_variousParameters; }
	void								SetVariousParameters( const EpilObjectVector & variousParameters )	{ m_variousParameters = variousParameters; }
	const EpilObjectVector &			GetReturns() const													{ return m_returns; }
	void								SetReturns( const EpilObjectVector & returns )						{ m_returns = returns; }

private:
	bool								m_hasVariousParameters;
	EpilObjectVector					m_variousParameters;
	EpilObjectVector					m_returns;
};
